package com.simple.core;

import lombok.Getter;

import java.util.HashMap;
import java.util.Map;

/**
 * 数据载体，负责存放数据
 */
@Getter
public class Carrier extends HashMap<String, Object> {

    /**
     * 事件动作
     */
    private String action;

    /**
     * 构造方法
     *
     * @param action 事件动作
     */
    public Carrier(String action) {
        this.action = action;
    }

    /**
     * 向数据载体中，添加数据
     *
     * @param key  数据的键
     * @param data 数据
     * @param <T>  数据类型
     */
    public <T> void addData(String key, T data) {
        put(key, data);
    }

    /**
     * 从数据载体中，获取数据
     *
     * @param key 数据的键
     * @param <T> 数据类型
     * @return 数据
     */
    public <T> T getData(String key) {
        return (T) get(key);
    }
}
